252 文字
1 分

Q. go mod tidyしたらruntime error: invalid memory address or nil pointer dereference

2024-04-23

状況#

あるプロジェクトでgo mod tidyを実行したら、以下のようなエラーが発生した。

Terminal window
go: added github.com/pkg/errors v0.9.1
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5983af]
goroutine 97 [running]:
go/types.(*Checker).handleBailout(0xc0004ce600, 0xc00127fbd0)
/usr/local/go/src/go/types/check.go:367 +0x88
...
/home/circleci/go/pkg/mod/golang.org/x/[email protected]/go/packages/packages.go:845 +0x94
exit status 2

調査#

エラーを見ると、golang.org/x/toolsに原因があると推測できる。 実際に調べると、関連していそうな Issue がいくつか見つかった。

これらの問題は既に修正されているが、そもそもよく見るとインストールされているgolang.org/x/toolsのバージョンが古いv0.6.0と分かる。

原因#

go mod tidyによって、そのプロジェクトで直接利用されていないgolang.org/x/toolsが削除され、また利用している内製ライブラリの 1 つが保守されておらず古いgolang.org/x/toolsv0.6.0を利用していたことで、このエラーが発生するようになった。

ちゃんと保守しよう。

Q. go mod tidyしたらruntime error: invalid memory address or nil pointer dereference
https://blog.ohirunewani.com/posts/"go-mod-tidy-runtime-error-invalid-memory-address-or-nil-pointer-dereference"/
作者
hrdtbs
公開日
2024-04-23
ライセンス
CC BY-NC-SA 4.0